package com.example.springsecurity.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.apache.ibatis.type.Alias;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * @ClassName AssignExperiment
 * @Description TODO   实验布置的实体类
 * @Author lvyongwei
 * @Date 2020-09-24 14:23
 **/
@Data
@Alias("assignExperiment")
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class AssignExperiment {

    /**
     * 布置实验的id
     */
    private Long assignId;

    /**
     * 对应的实验项目id
     */
    private int assignProjectId;

    /**
     * 布置实验的教师的id
     */
    private Long userTeacherId;

    /**
     * 本次布置安排的名称
     */
    private String assignName;

    /**
     * 该次布置的实验的开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date projectBeginTime;

    /**
     * 该次布置的实验的结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date projectEndTime;

    /**
     * 创建布置的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 在线实验成绩比例
     */
    private Integer experimentScore;

    /**
     * 实验报告成绩比例
     */
    private Integer reportScore;

    /**
     * 视频成绩比例
     */
    private Integer videoScore;

    /**
     * 习题成绩比例
     */
    private Integer exercisesScore;

    /**
     * 学年
     */
    private String schoolYear;

    /**
     * 布置实验时,用来选择添加选择题集合
     */
    private List<AssignChoiceQuestion> assignChoiceQuestions;

    /**
     * 布置实验时,用来选择添加客观题的集合
     */
    private List<AssignObjectiveItem> assignObjectiveItems;

    /**
     * 布置实验给用户   保存用户名(即学号)
     */
    private List<String> userNames;


    private String cover;

    private boolean whetherOpen;//是否共享

    private Integer submitId;//成绩记录编号


}
